export default {
  copy(value) {
    // 复制文本
    const textValue = document.createElement("textarea");
    document.body.appendChild(textValue);
    textValue.value = value;
    textValue.select();
    document.execCommand("copy");
    document.body.removeChild(textValue);
  },
  download(str, name = "data.txt", type = "Application/text") {
    // 下载文本
    var a = document.createElement("a");
    a.download = name;
    a.style.display = "none";
    var blob = new Blob([str], { type: type });
    a.href = URL.createObjectURL(blob);
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
  },
  getParam(name) {
    // 获取地址栏参数
    var r = location.href.split("?")[1]
      ? location.href
          .split("?")[1]
          .match(new RegExp("(^|&)" + name + "=([^&]*)(&|$)"))
      : null;
    return r == null ? null : unescape(r[2]);
  },
  fistChartUpper(str) {
    // 字符串首字母大写
    return str.charAt(0).toUpperCase() + str.slice(1);
  },

  telFormat(tel) {
    // 手机号中间四位变成
    return String(tel).substr(0, 3) + "****" + String(tel).substr(7);
  },

  getKebabCase(str) {
    // 驼峰命名转换成短横线命名
    return str.replace(/[A-Z]/g, item => "-" + item.toLowerCase());
  },
  getCamelCase(str) {
    //  短横线命名转换成驼峰命名
    return str.replace(/-([a-z])/g, (i, item) => item.toUpperCase());
  },
  trimStr(str = "") {
    // 返回不带前后空格的串
    return str.toString().trim();
  },
  cutStr(str = "", len) {
    var patrn = /[^\x00-\xff]/,
      count = 0;
    for (var i in str) {
      count += patrn.exec(i) ? 1 : 2;
      if (count == length) {
        str = "";
      }
    }
  },
  gbLen(str) {
    // 文本字节数
    return str.replace(/[\u4E00-\u6FA5]/g, "**").length;
  },
  subsTring(str = "--", n = 10) {
    // 文本截断
    return str.substr(0, n);
  },
  replace(val) {
    // 文本替换
    return val == 0 ? 0 : isNaN(val || "NaN") ? "--" : val;
  },
  htmlDecode(str) {
    // 利用浏览器进行编码
    var temp = document.createElement("div");
    temp.innerHTML = str;
    var output = temp.innerText || temp.textContent;
    temp = null;
    return output;
  },
  replaceHTML(val) {
    // 安全文本
    if (!val) return val;
    const res = `${val}`.replace(/<[^>]+>/g, "").replace(/&nbsp;/gi, "").trim();
    return res;
  },
 compareVersions(v1, v2) {
  // 计算版本
  var arr1 = v1.split('.'), arr2 = v2.split('.'); 
  for (var i = 0; i < Math.max(arr1.length, arr2.length); i++) {
    var m = parseInt(arr1[i] || 0), n = parseInt(arr2[i] || 0);  // 长度不够，则 补0
     if (m < n)       return -1;  
     if (m > n)       return 1;      
   } 
  return 0;  
}
};
